<!DOCTYPE html>
<html lang="en-us">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title> 项目4 </title>
  
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="robots" content="all,follow">
  <meta name="googlebot" content="index,follow,snippet,archive">
  <meta property="og:title" content="项目4" />
<meta property="og:description" content="硬件编程–机器指令编程实验 实验目标 1.理解冯·诺伊曼计算机的结构
2.理解机器指令
3.用汇编编写简单程序
实验步骤与结果 任务1 点step after step。观察并回答下面问题： PC，IR 寄存器的作用。 PC: PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。
IR:
1)用来存放后续指令地址
2)保存当前正在执行的一条指令
3)保存将被存储的下一个数据字节的地址
4)保存当前CPU所访问的主存单元的地址
ACC 寄存器的全称与作用。 全称:Accumulator(累加器)
作用:主要用于完成数据的算术和逻辑运算，可以存放数据或中间结果。
用“LOD #3”指令的执行过程，解释Fetch-Execute周期。 1)PC 根据地址从RAM取出指令LOD #3
2)指令传入IR，指令传入Decoder，无需取址，数字3传入MUX
3)数字3传入ALU之后传入ACC
用“ADD W” 指令的执行过程，解释Fetch-Execute周期。 1)PC根据地址从RAM取出指令ADD W
2)指令传入IR之后传入Decoder
3)ALU从ACC中取值
4)IR再次访问RAM中的W，从W中取值
5)W的值读入ALU
6)ALU执行加法，结果传入ACC
“LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别，有什么不同。 LOD #3只需访问RAM一次,而ADD W需要两次访问RAM
点击“Binary”,观察回答下面问题 写出指令 “LOD #7” 的二进制形式，按指令结构，解释每部分的含义。 00010100 00000111
一个为步骤,另一个为操作数
解释 RAM 的地址。 只用于暂时存放程序和数据，一旦关闭电源或发生断电，其中的程序和数据就会丢失
该机器CPU是几位的？（按累加器的位数） 16位
写出该程序对应的 C语言表达。 int w = 3;
int x = 7;" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://beikenken.gitee.io/post/%E9%A1%B9%E7%9B%AE4/" />
<meta property="article:published_time" content="2020-10-19T19:37:34+08:00" />
<meta property="article:modified_time" content="2020-10-19T19:37:34+08:00" />

  <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="项目4"/>
<meta name="twitter:description" content="硬件编程–机器指令编程实验 实验目标 1.理解冯·诺伊曼计算机的结构
2.理解机器指令
3.用汇编编写简单程序
实验步骤与结果 任务1 点step after step。观察并回答下面问题： PC，IR 寄存器的作用。 PC: PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。
IR:
1)用来存放后续指令地址
2)保存当前正在执行的一条指令
3)保存将被存储的下一个数据字节的地址
4)保存当前CPU所访问的主存单元的地址
ACC 寄存器的全称与作用。 全称:Accumulator(累加器)
作用:主要用于完成数据的算术和逻辑运算，可以存放数据或中间结果。
用“LOD #3”指令的执行过程，解释Fetch-Execute周期。 1)PC 根据地址从RAM取出指令LOD #3
2)指令传入IR，指令传入Decoder，无需取址，数字3传入MUX
3)数字3传入ALU之后传入ACC
用“ADD W” 指令的执行过程，解释Fetch-Execute周期。 1)PC根据地址从RAM取出指令ADD W
2)指令传入IR之后传入Decoder
3)ALU从ACC中取值
4)IR再次访问RAM中的W，从W中取值
5)W的值读入ALU
6)ALU执行加法，结果传入ACC
“LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别，有什么不同。 LOD #3只需访问RAM一次,而ADD W需要两次访问RAM
点击“Binary”,观察回答下面问题 写出指令 “LOD #7” 的二进制形式，按指令结构，解释每部分的含义。 00010100 00000111
一个为步骤,另一个为操作数
解释 RAM 的地址。 只用于暂时存放程序和数据，一旦关闭电源或发生断电，其中的程序和数据就会丢失
该机器CPU是几位的？（按累加器的位数） 16位
写出该程序对应的 C语言表达。 int w = 3;
int x = 7;"/>

  
  
  
  <link rel="stylesheet" href="https://beikenken.gitee.io/css/style-white.css">
  
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  

  
<link rel="icon" type="image/png" href="https://beikenken.gitee.io/images/favicon.ico" />

  
</head>
<body class="max-width mx-auto px3 ltr">
  <div class="content index py4">

    <header id="header">
  <a href="https://beikenken.gitee.io">
  
    <div id="logo" style="background-image: url(https://beikenken.gitee.io/images/logo.png)"></div>
  
  <div id="title">
    <h1>【18342131】的软导作业索引页   全部博客:beikenken.gitee.io/post</h1>
  </div>
  </a>
  <div id="nav">
    <ul>
      <li class="icon">
        <a href="#"><i class="fas fa-bars fa-2x"></i></a>
      </li>
      
    </ul>
  </div>
</header>
  

    
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">

  <div class="content" itemprop="articleBody">
  
    <h1 id="硬件编程机器指令编程实验">硬件编程–机器指令编程实验</h1>
<h2 id="实验目标">实验目标</h2>
<p>1.理解冯·诺伊曼计算机的结构<br>
2.理解机器指令<br>
3.用汇编编写简单程序</p>
<h2 id="实验步骤与结果">实验步骤与结果</h2>
<h3 id="任务1">任务1</h3>
<h4 id="点step-after-step观察并回答下面问题">点step after step。观察并回答下面问题：</h4>
<p><img src="/img/5.png" alt="alt"></p>
<h5 id="pcir-寄存器的作用">PC，IR 寄存器的作用。</h5>
<p>PC: PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。</p>
<p>IR:</p>
<p>1)用来存放后续指令地址</p>
<p>2)保存当前正在执行的一条指令</p>
<p>3)保存将被存储的下一个数据字节的地址</p>
<p>4)保存当前CPU所访问的主存单元的地址</p>
<h5 id="acc-寄存器的全称与作用">ACC 寄存器的全称与作用。</h5>
<p>全称:Accumulator(累加器)</p>
<p>作用:主要用于完成数据的算术和逻辑运算，可以存放数据或中间结果。</p>
<h5 id="用lod-3指令的执行过程解释fetch-execute周期">用“LOD #3”指令的执行过程，解释Fetch-Execute周期。</h5>
<p>1)PC 根据地址从RAM取出指令LOD #3</p>
<p>2)指令传入IR，指令传入Decoder，无需取址，数字3传入MUX</p>
<p>3)数字3传入ALU之后传入ACC</p>
<h5 id="用add-w-指令的执行过程解释fetch-execute周期">用“ADD W” 指令的执行过程，解释Fetch-Execute周期。</h5>
<p>1)PC根据地址从RAM取出指令ADD W</p>
<p>2)指令传入IR之后传入Decoder</p>
<p>3)ALU从ACC中取值</p>
<p>4)IR再次访问RAM中的W，从W中取值</p>
<p>5)W的值读入ALU</p>
<p>6)ALU执行加法，结果传入ACC</p>
<h5 id="lod-3-与-add-w-指令的执行在fetch-execute周期级别有什么不同">“LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别，有什么不同。</h5>
<p>LOD #3只需访问RAM一次,而ADD W需要两次访问RAM</p>
<h4 id="点击binary观察回答下面问题">点击“Binary”,观察回答下面问题</h4>
<p><img src="/img/6.png" alt="alt"></p>
<h5 id="写出指令-lod-7-的二进制形式按指令结构解释每部分的含义">写出指令 “LOD #7” 的二进制形式，按指令结构，解释每部分的含义。</h5>
<p>00010100 00000111<br>
一个为步骤,另一个为操作数</p>
<h5 id="解释-ram-的地址">解释 RAM 的地址。</h5>
<p>只用于暂时存放程序和数据，一旦关闭电源或发生断电，其中的程序和数据就会丢失</p>
<h5 id="该机器cpu是几位的按累加器的位数">该机器CPU是几位的？（按累加器的位数）</h5>
<p>16位</p>
<h5 id="写出该程序对应的-c语言表达">写出该程序对应的 C语言表达。</h5>
<p>int w = 3;<br>
int x = 7;<br>
int z = x + w;</p>
<h3 id="任务2">任务2</h3>
<p><img src="/img/7.png" alt="alt"></p>
<h4 id="输入程序program-2运行并回答问题">输入程序Program 2，运行并回答问题：</h4>
<h5 id="用一句话总结程序的功能">用一句话总结程序的功能</h5>
<p>使 x 从 10 不断减一,直到 x &lt; 0.</p>
<h5 id="写出对应的-c-语言程序">写出对应的 c 语言程序</h5>
<p>int x = 10;<br>
while (x &gt;= 0){<br>
&ndash;x;<br>
}</p>
<h4 id="修改该程序用机器语言实现-10981-输出结果存放于内存-y">修改该程序，用机器语言实现 10+9+8+..1 ，输出结果存放于内存 Y</h4>
<p><img src="/img/8.png" alt="alt"></p>
<h5 id="写出-c-语言的计算过程">写出 c 语言的计算过程</h5>
<p>int x = 10;<br>
int w = 0;<br>
while(x &gt; 0){<br>
w += x;<br>
&ndash;x;<br>
}<br>
int y = w;</p>
<h5 id="写出机器语言的计算过程">写出机器语言的计算过程</h5>
<p>0000000 00010100 00001010<br>
0000010 00000101 10000001<br>
0000100 00010001 00000001<br>
0000110 00000101 10000000<br>
0001000 00000000 10000001<br>
0001010 00000101 10000000<br>
0001100 00000100 10000000<br>
0001110 00001101 00010010<br>
0010000 00001100 00000100<br>
0010010 00000101 10000010<br>
0010100 00001111 00000000<br>
0010110 00001110 00000000<br>
1000000 00000000<br>
1000001 00000000<br>
1000010 00000000</p>
<h5 id="用自己的语言简单总结高级语言与机器语言的区别与联系">用自己的语言，简单总结高级语言与机器语言的区别与联系。</h5>
<p>联系:高级语言经编译可变为机械语言,都可以实现顺序，选择和循环  <br>
区别：高级语言更接近人类语言,是给人看的 ; 机器语言是纯粹的二进制数据,是给机器看的。</p>
<h2 id="实验小结">实验小结</h2>
<p>通过亲手进行的实验操作，我深刻的理解了冯·诺伊曼计算机的结构以及汇编语言的有关知识</p>

  
  </div>
</article>


    <footer id="footer">
  <div class="footer-left">
    Copyright  &copy; 2021  【18342131】的软导作业索引页   全部博客:beikenken.gitee.io/post 
  </div>
  <div class="footer-right">
    <nav>
      <ul>
        
      </ul>
    </nav>
  </div>
</footer>


  </div>
  
</body>

<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<script src="/lib/jquery/jquery.min.js"></script>
<script src="/js/main.js"></script>
</html>
